@@ -4,10 +4,7 @@ from __future__ import division |
||
4 | 4 |
|
5 | 5 |
from django.shortcuts import HttpResponse |
6 | 6 |
|
7 |
-from stock.models import StockInfo |
|
8 |
-from utils.redis.connect import r |
|
9 |
-from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET |
|
10 |
-from utils.stock_utils import refresh_stock_info, send_stock_info |
|
7 |
+from utils.stock_utils import refresh_stock_info, send_all_stock_info |
|
11 | 8 |
|
12 | 9 |
|
13 | 10 |
def refresh_stockinfo(request): |
@@ -16,11 +13,5 @@ def refresh_stockinfo(request): |
||
16 | 13 |
|
17 | 14 |
|
18 | 15 |
def send_stockinfo(request): |
19 |
- pks = r.smembers(JDJOS_STOCK_CHANGED_SET) |
|
20 |
- for pk in pks: |
|
21 |
- try: |
|
22 |
- stock = StockInfo.objects.get(pk=pk, status=True) |
|
23 |
- except StockInfo.DoesNotExist: |
|
24 |
- continue |
|
25 |
- send_stock_info(stock) |
|
16 |
+ send_all_stock_info() |
|
26 | 17 |
return HttpResponse('Send Success') |
@@ -1,11 +1,12 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 |
-from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
4 |
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin, SpecifiedQuantityQuerySetModelAdmin |
|
5 | 5 |
|
6 |
-from stock.models import StockInfo |
|
6 |
+from stock.models import StockInfo, StockSendInfo |
|
7 | 7 |
from utils.redis.connect import r |
8 | 8 |
from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET |
9 |
+from utils.stock_utils import send_all_stock_info |
|
9 | 10 |
|
10 | 11 |
|
11 | 12 |
class StockInfoAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin): |
@@ -19,4 +20,13 @@ class StockInfoAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin): |
||
19 | 20 |
r.sadd(JDJOS_STOCK_CHANGED_SET, obj.pk) |
20 | 21 |
|
21 | 22 |
|
23 |
+class StockSendInfoAdmin(SpecifiedQuantityQuerySetModelAdmin, admin.ModelAdmin): |
|
24 |
+ list_display = ('pk', 'submit') |
|
25 |
+ readonly_fields = ('status', ) |
|
26 |
+ |
|
27 |
+ def save_model(self, request, obj, form, change): |
|
28 |
+ send_all_stock_info() |
|
29 |
+ |
|
30 |
+ |
|
22 | 31 |
admin.site.register(StockInfo, StockInfoAdmin) |
32 |
+admin.site.register(StockSendInfo, StockSendInfoAdmin) |
@@ -0,0 +1,29 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+# Generated by Django 1.11.20 on 2019-03-04 08:03 |
|
3 |
+from __future__ import unicode_literals |
|
4 |
+ |
|
5 |
+from django.db import migrations, models |
|
6 |
+ |
|
7 |
+ |
|
8 |
+class Migration(migrations.Migration): |
|
9 |
+ |
|
10 |
+ dependencies = [ |
|
11 |
+ ('stock', '0004_auto_20190304_1337'), |
|
12 |
+ ] |
|
13 |
+ |
|
14 |
+ operations = [ |
|
15 |
+ migrations.CreateModel( |
|
16 |
+ name='StockSendInfo', |
|
17 |
+ fields=[ |
|
18 |
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
19 |
+ ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')), |
|
20 |
+ ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')), |
|
21 |
+ ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')), |
|
22 |
+ ('submit', models.BooleanField(default=True, help_text='\u786e\u8ba4\u63d0\u4ea4', verbose_name='\u786e\u8ba4\u63d0\u4ea4')), |
|
23 |
+ ], |
|
24 |
+ options={ |
|
25 |
+ 'verbose_name': 'StockSendInfo', |
|
26 |
+ 'verbose_name_plural': 'StockSendInfo', |
|
27 |
+ }, |
|
28 |
+ ), |
|
29 |
+ ] |
@@ -33,3 +33,14 @@ class StockInfo(BaseModelMixin): |
||
33 | 33 |
|
34 | 34 |
def __unicode__(self): |
35 | 35 |
return u'{0.pk}'.format(self) |
36 |
+ |
|
37 |
+ |
|
38 |
+class StockSendInfo(BaseModelMixin): |
|
39 |
+ submit = models.BooleanField(_(u'确认提交'), default=True, help_text=_(u'确认提交')) |
|
40 |
+ |
|
41 |
+ class Meta: |
|
42 |
+ verbose_name = _(u'StockSendInfo') |
|
43 |
+ verbose_name_plural = _(u'StockSendInfo') |
|
44 |
+ |
|
45 |
+ def __unicode__(self): |
|
46 |
+ return u'{0.pk}'.format(self) |
@@ -10,6 +10,8 @@ from jd.api.rest.EdiInventorySendRequest import EdiInventorySendRequest |
||
10 | 10 |
from jd.api.rest.VcAplsStockBatchGetProdStockInfoRequest import VcAplsStockBatchGetProdStockInfoRequest |
11 | 11 |
from jd.api.rest.VcItemProductsFindRequest import VcItemProductsFindRequest |
12 | 12 |
from stock.models import StockInfo |
13 |
+from utils.redis.connect import r |
|
14 |
+from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET |
|
13 | 15 |
|
14 | 16 |
|
15 | 17 |
JOS = settings.JOS['TAMRON'] |
@@ -89,3 +91,13 @@ def send_stock_info(stock): |
||
89 | 91 |
print(json.dumps(f)) |
90 | 92 |
except Exception, e: |
91 | 93 |
print(e) |
94 |
+ |
|
95 |
+ |
|
96 |
+def send_all_stock_info(): |
|
97 |
+ pks, _ = r.pipeline().smembers(JDJOS_STOCK_CHANGED_SET).delete(JDJOS_STOCK_CHANGED_SET).execute() |
|
98 |
+ for pk in pks: |
|
99 |
+ try: |
|
100 |
+ stock = StockInfo.objects.get(pk=pk, status=True) |
|
101 |
+ except StockInfo.DoesNotExist: |
|
102 |
+ continue |
|
103 |
+ send_stock_info(stock) |